Error control coding can be used in communication or data storage systems where there is a constraint on bandwidth or storage capacity that cannot easily be overcome by simply increasing the constrained resource. Error control coding typically involves taking a message consisting of k information bits/symbols and encoding them into n code bits/symbols, with n>k. The process can normally be achieved through an (n, k) block code of which many codes are well known, such as the binary Hamming and BCH codes, as well as the non-binary BCH and Reed-Solomon or RS codes.
The addition of the extra n−k bits/symbols to the k information bits/symbols that have to be transmitted, although critical to the functioning of the decoder for error-free recovery of the original information bits, conveys no additional information, thereby reducing the effective bandwidth of the channel. The effective rate of information transfer per transmitted code word is k/n with (n−k)/n representing the fraction of transmitted bits not conveying any additional information.
The encoding process produces the additional n−k bits. These additional bits are known as the parity bits of the code word and there typically exists 2n−k unique parity patterns. For codes with k/n>0.5 there are typically multiple code words that can map to the same parity pattern. Typically, 22k−n code words will map to a specific parity pattern consisting of n−k bits.
What is needed is a system and method in which the encoding of information takes place in such a manner that for all the information sequences or messages of interest, code words get selected in such a manner that all have the exact same parity pattern, in order to utilize as many of the bits in a communication channel for information transfer as possible.